<!--SIF Implementation Specification 2.2-6 (March 17, 2008)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://www.sifinfo.org/infrastructure/2.x" xmlns:sif="http://www.sifinfo.org/infrastructure/2.x" elementFormDefault="qualified">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="imports/xml/xml.xsd" />
  <xs:complexType name="EnglishProficiencyType">
    <xs:sequence>
      <xs:element name="Code" type="sif:NCES0585EnglishProficiencyType">
        <xs:annotation>
          <xs:documentation>Person's proficiency in English.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EnglishProficiency" type="sif:EnglishProficiencyType" />

  <xs:complexType name="LanguageListType">
    <xs:sequence>
      <xs:element name="Language" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:NISOZ3953LanguageCodesType">
              <xs:annotation>
                <xs:documentation>The code representing the specific language that an individual uses to communicate. </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="LanguageType" minOccurs="0" nillable="true" type="sif:NCES0327LanguageTypeType">
              <xs:annotation>
                <xs:documentation>An indication of the function and context in which an individual uses a language to communicate.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Dialect" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Specific dialect of a person's language.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="LanguageList" type="sif:LanguageListType" />

  <xs:simpleType name="PrimaryAssignmentType">
    <xs:annotation>
      <xs:documentation>Is this the person's primary assignment?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is this the person's primary assignment?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="PrimaryAssignment" type="sif:PrimaryAssignmentType" />

  <xs:complexType name="OtherNamesType">
    <xs:annotation>
      <xs:documentation>Previous, alternate or other names or aliases associated with a person.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Name" maxOccurs="unbounded">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>
					Name of the person.  Note: Type value of 04 may not occur here.
				</xs:documentation>
          </xs:annotation>
          <xs:complexContent>
            <xs:extension base="sif:OtherNameType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>
	In a Change event, this flag can be used to indicate an element has been deleted from the parent list container.  
At a minimum the key for the list must also be present.
</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="OtherNames" type="sif:OtherNamesType" />

  <xs:complexType name="PlannedAssessmentParticipationType">
    <xs:annotation>
      <xs:documentation>The student's planned level of participation in statewide assessments.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:token">
        <xs:attribute name="Codeset" use="required">
          <xs:annotation>
            <xs:documentation>Identifies source of value provided.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="StateProvince" />
              <xs:enumeration value="Local">
                <xs:annotation>
                  <xs:documentation>e.g. district-specific</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="Other" />
              <xs:enumeration value="Text" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="PlannedAssessmentParticipation" type="sif:PlannedAssessmentParticipationType" />

  <xs:complexType name="ExceptionalityCategoriesType">
    <xs:sequence>
      <xs:element name="ExceptionalityCategory" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code">
              <xs:annotation>
                <xs:documentation>
	Exceptionality description/code which identifies the exceptionality or areas of need of the student.
	Not all programs require identification of an exceptionality.
	If required for this program type, must have at least one element with ExceptionalityPriority value of Primary.
</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:union>
                  <xs:annotation>
                    <xs:documentation>
	Exceptionality description/code which identifies the exceptionality or areas of need of the student.
	Not all programs require identification of an exceptionality.
	If required for this program type, must have at least one element with ExceptionalityPriority value of Primary.
</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="sif:NCES0768PrimaryDisabilityTypeType" />
                  </xs:simpleType>
                  <xs:annotation>
                    <xs:documentation>
	Exceptionality description/code which identifies the exceptionality or areas of need of the student.
	Not all programs require identification of an exceptionality.
	If required for this program type, must have at least one element with ExceptionalityPriority value of Primary.
</xs:documentation>
                  </xs:annotation>
                  <xs:simpleType>
                    <xs:restriction base="xs:token">
                      <xs:enumeration value="9999">
                        <xs:annotation>
                          <xs:documentation>Other (not valid for special education)</xs:documentation>
                        </xs:annotation>
                      </xs:enumeration>
                    </xs:restriction>
                  </xs:simpleType>
                </xs:union>
              </xs:simpleType>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="ExceptionalityPriority">
              <xs:annotation>
                <xs:documentation>Identifies priority of the exceptionality.  "Primary" is the first and is required even if only one exceptionality is specified. "Secondary", etc. are of lower priority. Primary, Secondary, and Tertiary must be specified before "Additional" is used.</xs:documentation>
              </xs:annotation>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:enumeration value="Primary">
                    <xs:annotation>
                      <xs:documentation>Identifies relative severity of disability - only one can be primary</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="Secondary">
                    <xs:annotation>
                      <xs:documentation>Identifies relative severity of disability - only one can be secondary</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="Tertiary">
                    <xs:annotation>
                      <xs:documentation>Identifies relative severity of disability - only one can be tertiary</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                  <xs:enumeration value="Additional">
                    <xs:annotation>
                      <xs:documentation>Multiple disabilities can be identified as "Additional"</xs:documentation>
                    </xs:annotation>
                  </xs:enumeration>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ExceptionalityCategories" type="sif:ExceptionalityCategoriesType" />

  <xs:complexType name="ProgramStatusType">
    <xs:sequence>
      <xs:element name="Code">
        <xs:annotation>
          <xs:documentation>The current status of the student's program participation.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="S001">
              <xs:annotation>
                <xs:documentation>Referred</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S002">
              <xs:annotation>
                <xs:documentation>Eligible</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S003">
              <xs:annotation>
                <xs:documentation>Not Eligible</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S004">
              <xs:annotation>
                <xs:documentation>Active</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S005">
              <xs:annotation>
                <xs:documentation>Exited</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="9999">
              <xs:annotation>
                <xs:documentation>Other</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ProgramStatus" type="sif:ProgramStatusType" />

  <xs:complexType name="ProgramTypeType">
    <xs:sequence>
      <xs:element name="Code">
        <xs:annotation>
          <xs:documentation>Identifies the individualized program for which the student's participation is described in this instance.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>Identifies the individualized program for which the student's participation is described in this instance.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:NCES0274StudentFamilyProgramTypeType">
                <xs:enumeration value="0241" />
                <xs:enumeration value="0242" />
                <xs:enumeration value="0244" />
                <xs:enumeration value="0245" />
                <xs:enumeration value="0248" />
                <xs:enumeration value="0875" />
                <xs:enumeration value="0249" />
                <xs:enumeration value="0250" />
                <xs:enumeration value="0876" />
                <xs:enumeration value="0251" />
                <xs:enumeration value="0253" />
                <xs:enumeration value="0255" />
                <xs:enumeration value="0256" />
                <xs:enumeration value="2389" />
                <xs:enumeration value="2381" />
                <xs:enumeration value="0246" />
                <xs:enumeration value="0283" />
                <xs:enumeration value="0284" />
                <xs:enumeration value="2393" />
                <xs:enumeration value="0263" />
                <xs:enumeration value="0265" />
                <xs:enumeration value="0267" />
                <xs:enumeration value="0289" />
                <xs:enumeration value="0270" />
                <xs:enumeration value="0272" />
                <xs:enumeration value="0278" />
                <xs:enumeration value="9999" />
              </xs:restriction>
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>Identifies the individualized program for which the student's participation is described in this instance.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:NCES0229ProgramTypeType">
                <xs:enumeration value="0300" />
                <xs:enumeration value="0400" />
                <xs:enumeration value="0800" />
                <xs:enumeration value="1300" />
                <xs:enumeration value="1400" />
                <xs:enumeration value="1800" />
                <xs:enumeration value="1900" />
                <xs:enumeration value="2200" />
                <xs:enumeration value="2300" />
                <xs:enumeration value="2400" />
                <xs:enumeration value="2900" />
                <xs:enumeration value="3000" />
                <xs:enumeration value="3100" />
                <xs:enumeration value="3200" />
              </xs:restriction>
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>Identifies the individualized program for which the student's participation is described in this instance.</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="S001">
                  <xs:annotation>
                    <xs:documentation>Supplemental education services</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S002">
                  <xs:annotation>
                    <xs:documentation>Early intervening services</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S003">
                  <xs:annotation>
                    <xs:documentation>Individual learning / graduation plan</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S004">
                  <xs:annotation>
                    <xs:documentation>Exchange program - foreign student attending district school</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S005">
                  <xs:annotation>
                    <xs:documentation>Exchange program - district student attending foreign school</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S006">
                  <xs:annotation>
                    <xs:documentation>Home schooling</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S007">
                  <xs:annotation>
                    <xs:documentation>Early childhood full-day program for 3-year-old students</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S008">
                  <xs:annotation>
                    <xs:documentation>Early childhood full-day program for 4-year-old students</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S009">
                  <xs:annotation>
                    <xs:documentation>Early childhood half-day program for 3-year-old students</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S010">
                  <xs:annotation>
                    <xs:documentation>Early childhood half-day program for 4-year-old students</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S011">
                  <xs:annotation>
                    <xs:documentation>Kindergarten full-day program</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S012">
                  <xs:annotation>
                    <xs:documentation>Kindergarten half-day program</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S013">
                  <xs:annotation>
                    <xs:documentation>Neglected and Delinquent (ESEA I-D)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S014">
                  <xs:annotation>
                    <xs:documentation>Reading First (Title I-B-1 and I-B-2)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S015">
                  <xs:annotation>
                    <xs:documentation>Education for homeless children and youths (MVHAA Title VII-B)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="S016">
                  <xs:annotation>
                    <xs:documentation>Rural education (ESEA VI-B)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ProgramType" type="sif:ProgramTypeType" />

  <xs:simpleType name="GraduationRequirementType">
    <xs:annotation>
      <xs:documentation>Does the state require that the course be completed for graduation?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Does the state require that the course be completed for graduation?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="GraduationRequirement" type="sif:GraduationRequirementType" />

  <xs:complexType name="SubjectAreaListType">
    <xs:annotation>
      <xs:documentation>A list of subject areas.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SubjectArea" maxOccurs="unbounded" type="sif:SubjectAreaType">
        <xs:annotation>
          <xs:documentation>Subject matter.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectAreaList" type="sif:SubjectAreaListType" />

  <xs:complexType name="TermSpanType">
    <xs:sequence>
      <xs:element name="Code" type="sif:NCES0266SessionTypeType">
        <xs:annotation>
          <xs:documentation>Code for session type.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="TermSpan" type="sif:TermSpanType" />

  <xs:complexType name="SchoolContactListType">
    <xs:annotation>
      <xs:documentation>A list of contact persons associated with a school.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SchoolContact" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="PublishInDirectory" minOccurs="0" nillable="true" type="sif:PublishInDirectoryType">
              <xs:annotation>
                <xs:documentation>Indicates whether or not this school contact's information should be published in a directory of school information.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ContactInfo" type="sif:ContactInfoType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SchoolContactList" type="sif:SchoolContactListType" />

  <xs:simpleType name="SchoolURLType">
    <xs:annotation>
      <xs:documentation>URL for a school.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:anyURI">
      <xs:annotation>
        <xs:documentation>URL for a school.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SchoolURL" type="sif:SchoolURLType" />

  <xs:simpleType name="LEANameType">
    <xs:annotation>
      <xs:documentation>Name of Local Education Agency.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>Name of Local Education Agency.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LEAName" type="sif:LEANameType" />

  <xs:simpleType name="LastNameType">
    <xs:annotation>
      <xs:documentation>A person's last name.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A person's last name.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LastName" type="sif:LastNameType" />

  <xs:simpleType name="FirstNameType">
    <xs:annotation>
      <xs:documentation>A person's first name.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A person's first name.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="FirstName" type="sif:FirstNameType" />

  <xs:simpleType name="MiddleNameType">
    <xs:annotation>
      <xs:documentation>A person's middle name or initial.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A person's middle name or initial.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="MiddleName" type="sif:MiddleNameType" />

  <xs:simpleType name="SSNType">
    <xs:annotation>
      <xs:documentation>Social Security Number</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Social Security Number</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SSN" type="sif:SSNType" />

  <xs:simpleType name="IDEAType">
    <xs:annotation>
      <xs:documentation>Is the student IDEA-eligible ("special education")? (Mutually exclusive with Section 504 classification.)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student IDEA-eligible ("special education")? (Mutually exclusive with Section 504 classification.)</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="IDEA" type="sif:IDEAType" />

  <xs:simpleType name="MigrantType">
    <xs:annotation>
      <xs:documentation>Is this a migrant student?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is this a migrant student?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Migrant" type="sif:MigrantType" />

  <xs:simpleType name="Title1Type">
    <xs:annotation>
      <xs:documentation>Is the student in Title 1 programs?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student in Title 1 programs?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Title1" type="sif:Title1Type" />

  <xs:simpleType name="GiftedTalentedType">
    <xs:annotation>
      <xs:documentation>Is the student in Gifted/Talented programs?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student in Gifted/Talented programs?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="GiftedTalented" type="sif:GiftedTalentedType" />

  <xs:simpleType name="EconomicDisadvantageType">
    <xs:annotation>
      <xs:documentation>Does the student meet the State criteria for classification as having an economic disadvantage?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Does the student meet the State criteria for classification as having an economic disadvantage?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="EconomicDisadvantage" type="sif:EconomicDisadvantageType" />

  <xs:simpleType name="ELLType">
    <xs:annotation>
      <xs:documentation>Is the student an English Language Learner under Title 3?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student an English Language Learner under Title 3?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="ELL" type="sif:ELLType" />

  <xs:simpleType name="HomelessType">
    <xs:annotation>
      <xs:documentation>Is the student homeless?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student homeless?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Homeless" type="sif:HomelessType" />

  <xs:simpleType name="Section504Type">
    <xs:annotation>
      <xs:documentation>Is the student a qualified individual under Section 504 of the Rehabilitation Act? (Mututally exclusive with IDEA classification.)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student a qualified individual under Section 504 of the Rehabilitation Act? (Mututally exclusive with IDEA classification.)</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Section504" type="sif:Section504Type" />

  <xs:simpleType name="VocationalConcentratorType">
    <xs:annotation>
      <xs:documentation>Does the student meet the State criteria for classification as a vocational concentrator?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Does the student meet the State criteria for classification as a vocational concentrator?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="VocationalConcentrator" type="sif:VocationalConcentratorType" />

  <xs:simpleType name="ImmigrantType">
    <xs:annotation>
      <xs:documentation>Does the student meet the State criteria for classification as being an immigrant?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Does the student meet the State criteria for classification as being an immigrant?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Immigrant" type="sif:ImmigrantType" />

  <xs:simpleType name="NeglectedDelinquentType">
    <xs:annotation>
      <xs:documentation>Is the student participating in programs for neglected, delinquent, or at risk children?</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Is the student participating in programs for neglected, delinquent, or at risk children?</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="NeglectedDelinquent" type="sif:NeglectedDelinquentType" />

  <xs:simpleType name="CourseCodeType">
    <xs:annotation>
      <xs:documentation>School-defined local code for a course.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>School-defined local code for a course.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="CourseCode" type="sif:CourseCodeType" />

  <xs:simpleType name="StateCourseCodeType">
    <xs:annotation>
      <xs:documentation>State-defined standard course code used to report information about courses.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>State-defined standard course code used to report information about courses.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="StateCourseCode" type="sif:StateCourseCodeType" />

  <xs:simpleType name="DistrictCourseCodeType">
    <xs:annotation>
      <xs:documentation>A district course code.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>A district course code.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="DistrictCourseCode" type="sif:DistrictCourseCodeType" />

  <xs:simpleType name="CourseTitleType">
    <xs:annotation>
      <xs:documentation>Title of a course.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>Title of a course.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="CourseTitle" type="sif:CourseTitleType" />

  <xs:complexType name="IdentificationInfoListType">
    <xs:sequence>
      <xs:element name="IdentificationInfo" maxOccurs="unbounded" type="sif:IdentificationInfoType">
        <xs:annotation>
          <xs:documentation>Other identification information associated with a school or LEA.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="IdentificationInfoList" type="sif:IdentificationInfoListType" />

  <xs:complexType name="IdentificationInfoType">
    <xs:annotation>
      <xs:documentation>Other identification information associated with a school or LEA.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Code" use="required">
          <xs:annotation>
            <xs:documentation>Code indicating which identification system is used.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="sif:NCES0147IdentificationSystemType">
              <xs:enumeration value="0175" />
              <xs:enumeration value="0264" />
              <xs:enumeration value="0276" />
              <xs:enumeration value="0764" />
              <xs:enumeration value="9999" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="IdentificationInfo" type="sif:IdentificationInfoType" />

  <xs:complexType name="CourseCreditsType">
    <xs:annotation>
      <xs:documentation>The number of credits awarded upon course completion.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="Type" use="required" type="sif:NCES0108CreditTypeEarnedType">
          <xs:annotation>
            <xs:documentation>The type of credit offered.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="CourseCredits" type="sif:CourseCreditsType" />

  <xs:complexType name="InstructionalLevelType">
    <xs:annotation>
      <xs:documentation>An indication of the general nature and difficulty of instruction provided.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Code" type="sif:NCES0437InstructionalLevelType">
        <xs:annotation>
          <xs:documentation>Code representing the general nature and difficulty of instruction provided.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="InstructionalLevel" type="sif:InstructionalLevelType" />

  <xs:complexType name="AddressListType">
    <xs:annotation>
      <xs:documentation>A list of Address elements.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Address" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:AddressType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>
	In a Change event, this flag can be used to indicate an element has been deleted from the parent list container.  At a minimum the key for the list must also be present.
</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="AddressList" type="sif:AddressListType" />

  <xs:complexType name="AddressType">
    <xs:annotation>
      <xs:documentation>This element contains address data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Street">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Line1" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 1.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Line2" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 2.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Line3" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Address line 3.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Complex" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Name of the complex.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StreetNumber" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The address number assigned to the building.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StreetPrefix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Street prefix like NE</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StreetName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The name of the street.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StreetType" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The type of street. For example, Lane, Blvd., Ave., etc.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="StreetSuffix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Street suffix like SW.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ApartmentType" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Type of apartment, for example, Suite.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ApartmentNumberPrefix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Apartment number prefix.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ApartmentNumber" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>The number of the apartment.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ApartmentNumberSuffix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Apartment number suffix.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="City" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The city part of the address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="County" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The county part of the address.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StateProvince" type="sif:StateProvinceType">
        <xs:annotation>
          <xs:documentation>The state or province code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Country" type="sif:CountryType">
        <xs:annotation>
          <xs:documentation>The country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PostalCode" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The ZIP/postal code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="GridLocation" minOccurs="0" nillable="true" type="sif:GridLocationType">
        <xs:annotation>
          <xs:documentation>The location of the address.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required" type="sif:NCES0025AddressTypeType">
      <xs:annotation>
        <xs:documentation>Code that defines the location of the address.  Note:  A subset of specific valid values for each instance in a data object may be listed in that object.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="Address" type="sif:AddressType" />

  <xs:simpleType name="StateProvinceType">
    <xs:annotation>
      <xs:documentation>A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used.</xs:documentation>
    </xs:annotation>
    <xs:annotation>
      <xs:documentation>A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used.</xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:annotation>
        <xs:documentation>A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="sif:USPSAbbreviationsType" />
      </xs:simpleType>
      <xs:annotation>
        <xs:documentation>A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="sif:CanadaPostProvincesAndTerritoriesType" />
      </xs:simpleType>
      <xs:annotation>
        <xs:documentation>A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="StateProvince" type="sif:StateProvinceType" />

  <xs:simpleType name="CountryType">
    <xs:annotation>
      <xs:documentation>A country code.</xs:documentation>
    </xs:annotation>
    <xs:annotation>
      <xs:documentation>A country code.</xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:annotation>
        <xs:documentation>A country code.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="sif:ISO31661EnglishCountryNamesAndCodeElementsType" />
      </xs:simpleType>
      <xs:annotation>
        <xs:documentation>A country code.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="sif:ISO31663CodeForFormerlyUsedNamesOfCountriesType" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="Country" type="sif:CountryType" />

  <xs:simpleType name="CongressionalDistrictType">
    <xs:annotation>
      <xs:documentation>
	Number for the US congressional district.  While typically numerical, this element does allow for text values to cover exceptions, e.g. to indicate an "at-large"
	district as in Wyoming.
</xs:documentation>
    </xs:annotation>
    <xs:annotation>
      <xs:documentation>
	Number for the US congressional district.  While typically numerical, this element does allow for text values to cover exceptions, e.g. to indicate an "at-large"
	district as in Wyoming.
</xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:annotation>
        <xs:documentation>
	Number for the US congressional district.  While typically numerical, this element does allow for text values to cover exceptions, e.g. to indicate an "at-large"
	district as in Wyoming.
</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:unsignedInt" />
      </xs:simpleType>
      <xs:annotation>
        <xs:documentation>
	Number for the US congressional district.  While typically numerical, this element does allow for text values to cover exceptions, e.g. to indicate an "at-large"
	district as in Wyoming.
</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="CongressionalDistrict" type="sif:CongressionalDistrictType" />

  <xs:complexType name="ContactInfoType">
    <xs:annotation>
      <xs:documentation>Common element used to supply information for a contact person at a school, LEA, or other institution.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Name">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Prefix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>A prefix associated with the name like Mr., Ms., etc.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="LastName" minOccurs="0" nillable="true" type="sif:LastNameType">
              <xs:annotation>
                <xs:documentation>The last name.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="FirstName" minOccurs="0" nillable="true" type="sif:FirstNameType">
              <xs:annotation>
                <xs:documentation>The first name.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="MiddleName" minOccurs="0" nillable="true" type="sif:MiddleNameType">
              <xs:annotation>
                <xs:documentation>The middle name or initial.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Suffix" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>Generation of suffix like II, Jr., etc.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PreferredName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>This is a name that the person prefers to be called by.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SortName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>This is the name to be used for sorting purposes.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="FullName" minOccurs="0" nillable="true" type="xs:normalizedString">
              <xs:annotation>
                <xs:documentation>
	A free text field for the complete name.  Mandatory if LastName and FirstName are omitted.
</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="Type" use="required">
            <xs:annotation>
              <xs:documentation>
	Code that specifies what type of name this is.  If unsure, use 04.
</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="xs:token">
                <xs:enumeration value="01">
                  <xs:annotation>
                    <xs:documentation>Given Name (Name at Birth)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="02">
                  <xs:annotation>
                    <xs:documentation>Current Legal</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="03">
                  <xs:annotation>
                    <xs:documentation>Alias</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="04">
                  <xs:annotation>
                    <xs:documentation>Name of Record</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="05">
                  <xs:annotation>
                    <xs:documentation>Previous Name (sometimes called Maiden Name of Female Persons)</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="07">
                  <xs:annotation>
                    <xs:documentation>Married Name</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
                <xs:enumeration value="08">
                  <xs:annotation>
                    <xs:documentation>Professional Name</xs:documentation>
                  </xs:annotation>
                </xs:enumeration>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
        </xs:complexType>
      </xs:element>
      <xs:element name="PositionTitle" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The contact person's position title.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Role" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Role played by this contact in this instance.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Address" minOccurs="0" nillable="true" type="sif:AddressType">
        <xs:annotation>
          <xs:documentation>Address of the contact.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EmailList" minOccurs="0" nillable="true" type="sif:EmailListType">
        <xs:annotation>
          <xs:documentation>List of Email elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PhoneNumberList" minOccurs="0" nillable="true" type="sif:PhoneNumberListType">
        <xs:annotation>
          <xs:documentation>List of PhoneNumber elements.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ContactInfo" type="sif:ContactInfoType" />

  <xs:simpleType name="HispanicLatinoType">
    <xs:annotation>
      <xs:documentation>
	An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central or South America, or other Spanish
	cultures, regardless of race.
</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>
	An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central or South America, or other Spanish
	cultures, regardless of race.
</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="HispanicLatino" type="sif:HispanicLatinoType" />

  <xs:complexType name="RaceListType">
    <xs:sequence>
      <xs:element name="Race" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:NCES0849RaceType">
              <xs:annotation>
                <xs:documentation>The general racial category which reflects the individual's recognition of his or her community or with which the individual most identifies.</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
            <xs:element name="Proportion" minOccurs="0" nillable="true" type="xs:decimal">
              <xs:annotation>
                <xs:documentation>A percentage associated with the race.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="RaceList" type="sif:RaceListType" />

  <xs:simpleType name="GenderType">
    <xs:annotation>
      <xs:documentation>A person's gender.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>A person's gender.</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="M">
        <xs:annotation>
          <xs:documentation>Male</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="F">
        <xs:annotation>
          <xs:documentation>Female</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="U">
        <xs:annotation>
          <xs:documentation>Unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Gender" type="sif:GenderType" />

  <xs:simpleType name="BirthDateType">
    <xs:annotation>
      <xs:documentation>A person's date of birth.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:date">
      <xs:annotation>
        <xs:documentation>A person's date of birth.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="BirthDate" type="sif:BirthDateType" />

  <xs:complexType name="DemographicsType">
    <xs:annotation>
      <xs:documentation>
	Demographics information about the student, contact, staff member, etc. This element occurs within objects such as
	StudentPersonal, StudentContact, etc.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="RaceList" minOccurs="0" nillable="true" type="sif:RaceListType" />
      <xs:element name="HispanicLatino" minOccurs="0" nillable="true" type="sif:HispanicLatinoType" />
      <xs:element name="Gender" minOccurs="0" nillable="true" type="sif:GenderType">
        <xs:annotation>
          <xs:documentation>Person's gender.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BirthDate" minOccurs="0" nillable="true" type="sif:BirthDateType">
        <xs:annotation>
          <xs:documentation>The person's date of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="BirthDateVerification" minOccurs="0" nillable="true" type="sif:NCES0315BirthdateVerificationType">
        <xs:annotation>
          <xs:documentation>Means by which the person's birth date was validated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PlaceOfBirth" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The person's place of birth—like village, town, city etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CountyOfBirth" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The county in which the person was born.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="StateOfBirth" minOccurs="0" nillable="true" type="sif:StateProvinceType">
        <xs:annotation>
          <xs:documentation>The person's state of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CountryOfBirth" minOccurs="0" nillable="true" type="sif:CountryType">
        <xs:annotation>
          <xs:documentation>The person's country of birth.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CountriesOfCitizenship" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountryOfCitizenship" maxOccurs="unbounded" type="sif:CountryType">
              <xs:annotation>
                <xs:documentation>A person's country of citizenship.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CountriesOfResidency" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CountryOfResidency" maxOccurs="unbounded" type="sif:CountryType">
              <xs:annotation>
                <xs:documentation>A person's country of residence.</xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CountryArrivalDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date the person first arrived in the country.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CitizenshipStatus" minOccurs="0" nillable="true" type="sif:NCES0322CitizenshipStatusType">
        <xs:annotation>
          <xs:documentation>The person's citizenship status.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EnglishProficiency" minOccurs="0" nillable="true" type="sif:EnglishProficiencyType">
        <xs:annotation>
          <xs:documentation>Person's proficiency in English.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="LanguageList" minOccurs="0" nillable="true" type="sif:LanguageListType">
        <xs:annotation>
          <xs:documentation>List of languages an individual uses to communicate.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DwellingArrangement" minOccurs="0" nillable="true">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Code" type="sif:NCES0600DwellingArrangementType">
              <xs:annotation>
                <xs:documentation>Code representing the setting/environment in which the person resides</xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="MaritalStatus" minOccurs="0" nillable="true" type="sif:NCES0330MaritalStatusType">
        <xs:annotation>
          <xs:documentation>The person's marital status.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Demographics" type="sif:DemographicsType" />

  <xs:simpleType name="EducationalLevelType">
    <xs:annotation>
      <xs:documentation>A code representing the highest level of education completed by a person.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:NCES0332HighestLevelOfEducationCompletedType">
      <xs:annotation>
        <xs:documentation>A code representing the highest level of education completed by a person.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="EducationalLevel" type="sif:EducationalLevelType" />

  <xs:complexType name="ElectronicIdListType">
    <xs:annotation>
      <xs:documentation>A list of electronic identifiers associated with an entity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="ElectronicId" maxOccurs="unbounded" type="sif:ElectronicIdType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="ElectronicIdList" type="sif:ElectronicIdListType" />

  <xs:complexType name="ElectronicIdType">
    <xs:annotation>
      <xs:documentation>
	Common element used to specify entity identifiers that are read by electronic equipment. It is used in objects such
	as StudentPersonal, StaffPersonal, and LibraryPatronStatus.
</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:annotation>
            <xs:documentation>Electronic ID type.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Barcode" />
              <xs:enumeration value="Magstripe" />
              <xs:enumeration value="PIN" />
              <xs:enumeration value="RFID" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="ElectronicId" type="sif:ElectronicIdType" />

  <xs:complexType name="EmailListType">
    <xs:annotation>
      <xs:documentation>A list of e-mail addresses associated with an individual.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Email" maxOccurs="unbounded">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="sif:EmailType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>
	In a Change event, this flag can be used to indicate an element has been deleted from the parent list container.  At a minimum the key for the list must also be present.
</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="EmailList" type="sif:EmailListType" />

  <xs:complexType name="EmailType">
    <xs:annotation>
      <xs:documentation>
	This element represents an e-mail address of one of a number of types and occurs in objects such as
	StudentPersonal, StaffPersonal, StudentContact, etc.
</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:annotation>
            <xs:documentation>This attribute specifies the type of e-mail address.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Primary" />
              <xs:enumeration value="Alternate1" />
              <xs:enumeration value="Alternate2" />
              <xs:enumeration value="Alternate3" />
              <xs:enumeration value="Alternate4" />
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="Email" type="sif:EmailType" />

  <xs:simpleType name="EntryDateType">
    <xs:annotation>
      <xs:documentation>The first date on which a student enters.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:date">
      <xs:annotation>
        <xs:documentation>The first date on which a student enters.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="EntryDate" type="sif:EntryDateType" />

  <xs:simpleType name="ExitDateType">
    <xs:annotation>
      <xs:documentation>The date on which a student exits.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:date">
      <xs:annotation>
        <xs:documentation>The date on which a student exits.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="ExitDate" type="sif:ExitDateType" />

  <xs:complexType name="GradeLevelType">
    <xs:annotation>
      <xs:documentation>Grade or academic level.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Code">
        <xs:annotation>
          <xs:documentation>Code representing the grade level.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="PK">
              <xs:annotation>
                <xs:documentation>Pre-Kindergarten/Preschool</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KG">
              <xs:annotation>
                <xs:documentation>Kindergarten</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="01" />
            <xs:enumeration value="02" />
            <xs:enumeration value="03" />
            <xs:enumeration value="04" />
            <xs:enumeration value="05" />
            <xs:enumeration value="06" />
            <xs:enumeration value="07" />
            <xs:enumeration value="08" />
            <xs:enumeration value="09" />
            <xs:enumeration value="10" />
            <xs:enumeration value="11" />
            <xs:enumeration value="12" />
            <xs:enumeration value="PG">
              <xs:annotation>
                <xs:documentation>Postgraduate/Adult</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UN">
              <xs:annotation>
                <xs:documentation>Ungraded</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Other" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GradeLevel" type="sif:GradeLevelType" />

  <xs:complexType name="GradeLevelsType">
    <xs:annotation>
      <xs:documentation>
	This is a common element used to specify a collection of grade levels supported. It is used in SchoolInfo and
	assessment-related objects.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="GradeLevel" maxOccurs="unbounded" type="sif:GradeLevelType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GradeLevels" type="sif:GradeLevelsType" />

  <xs:simpleType name="GraduationDateType">
    <xs:annotation>
      <xs:documentation>Date student officially graduated from secondary education.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="sif:PartialDateType">
      <xs:annotation>
        <xs:documentation>Date student officially graduated from secondary education.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="GraduationDate" type="sif:GraduationDateType" />

  <xs:simpleType name="ProjectedGraduationYearType">
    <xs:annotation>
      <xs:documentation>Currently projected graduation year (CCYY).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:gYear">
      <xs:annotation>
        <xs:documentation>Currently projected graduation year (CCYY).</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="ProjectedGraduationYear" type="sif:ProjectedGraduationYearType" />

  <xs:simpleType name="OnTimeGraduationYearType">
    <xs:annotation>
      <xs:documentation>First projected graduation year, usually determined when student is accepted into 9th grade (CCYY).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:gYear">
      <xs:annotation>
        <xs:documentation>First projected graduation year, usually determined when student is accepted into 9th grade (CCYY).</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="OnTimeGraduationYear" type="sif:OnTimeGraduationYearType" />

  <xs:complexType name="GridLocationType">
    <xs:annotation>
      <xs:documentation>
	This element contains a map location. The GridLocation element is utilized within other objects and elements, such
	as BusStopInfo and Address, etc.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Latitude">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:annotation>
              <xs:documentation>Latitude in decimal degrees.</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="-90" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="90" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="Longitude">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:annotation>
              <xs:documentation>Longitude in decimal degrees.</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="-180" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="180" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="GridLocation" type="sif:GridLocationType" />

  <xs:simpleType name="HomeroomNumberType">
    <xs:annotation>
      <xs:documentation>
	Common element used to specify the locally-defined number or identifier for a homeroom. It is used in objects such
	as RoomInfo and StudentSnapshot.
</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>
	Common element used to specify the locally-defined number or identifier for a homeroom. It is used in objects such
	as RoomInfo and StudentSnapshot.
</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="HomeroomNumber" type="sif:HomeroomNumberType" />

  <xs:simpleType name="LocalIdType">
    <xs:annotation>
      <xs:documentation>
	This is a common element used to define the locally assigned identifier associated with an entity. It is used in
	StudentPersonal, StaffPersonal, SchoolInfo, and other objects.
</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>
	This is a common element used to define the locally assigned identifier associated with an entity. It is used in
	StudentPersonal, StaffPersonal, SchoolInfo, and other objects.
</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="LocalId" type="sif:LocalIdType" />

  <xs:complexType name="MeetingTimeType">
    <xs:annotation>
      <xs:documentation>
	This element represents the meeting times and periods for a course, and occurs within objects such as SectionInfo
	and StudentSectionEnrollment.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="TimetableDay" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Locally defined rotation cycle day code when the section meets (e.g., in a two day schedule, valid values would be "A" and "B," or "1" and "2").</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="TimetablePeriod" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>The period within the day when this section takes place (e.g., "0" through "7").</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="MeetingTime" type="sif:MeetingTimeType" />

  <xs:complexType name="NameType">
    <xs:annotation>
      <xs:documentation>
	The Name element, which could belong to a student, staff member, contact, etc. This element or a form with a
	subset of Type values occurs within objects
	such as StudentPersonal, StudentContact, StaffPersonal, etc.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="sif:BaseNameType">
        <xs:attribute name="Type" use="required">
          <xs:annotation>
            <xs:documentation>
	Code that specifies what type of name this is.  If unsure, use 04.
</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="01">
                <xs:annotation>
                  <xs:documentation>Given Name (Name at Birth)</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="02">
                <xs:annotation>
                  <xs:documentation>Current Legal</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="03">
                <xs:annotation>
                  <xs:documentation>Alias</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="04">
                <xs:annotation>
                  <xs:documentation>Name of Record</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="05">
                <xs:annotation>
                  <xs:documentation>Previous Name (sometimes called Maiden Name of Female Persons)</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="07">
                <xs:annotation>
                  <xs:documentation>Married Name</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="08">
                <xs:annotation>
                  <xs:documentation>Professional Name</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:element name="Name" type="sif:NameType" />

  <xs:simpleType name="NCESIdType">
    <xs:annotation>
      <xs:documentation>
	This is a common element used to define the identifier assigned by the National Center for Education Statistics that
	is associated with an entity. It is used in SchoolInfo, LEAInfo, and other objects.
</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>
	This is a common element used to define the identifier assigned by the National Center for Education Statistics that
	is associated with an entity. It is used in SchoolInfo, LEAInfo, and other objects.
</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="NCESId" type="sif:NCESIdType" />

  <xs:simpleType name="OperationalStatusType">
    <xs:annotation>
      <xs:documentation>Operational condition of an institution.</xs:documentation>
    </xs:annotation>
    <xs:annotation>
      <xs:documentation>Operational condition of an institution.</xs:documentation>
    </xs:annotation>
    <xs:union>
      <xs:annotation>
        <xs:documentation>Operational condition of an institution.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="sif:NCES0256SchoolStatusType" />
      </xs:simpleType>
      <xs:annotation>
        <xs:documentation>Operational condition of an institution.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="sif:NCES0032AgencyStatusType" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>

  <xs:element name="OperationalStatus" type="sif:OperationalStatusType" />

  <xs:complexType name="OtherIdType">
    <xs:annotation>
      <xs:documentation>
	An "other" identifier associated with a person. This element occurs in objects such as StudentPersonal and
	StaffPersonal, etc.
</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required" type="sif:NCES0147IdentificationSystemType">
          <xs:annotation>
            <xs:documentation>Code that defines the type of this other ID.  Note: A subset of valid values may be specified in data objects.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="OtherId" type="sif:OtherIdType" />

  <xs:complexType name="PhoneNumberListType">
    <xs:annotation>
      <xs:documentation>Lists phone numbers associated with an entity.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="PhoneNumber" maxOccurs="unbounded">
        <xs:complexType>
          <xs:complexContent>
            <xs:extension base="sif:PhoneNumberType">
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>
	In a Change event, this flag can be used to indicate an element has been deleted from the parent list container.  At a minimum the key for the list must also be present.
</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="PhoneNumberList" type="sif:PhoneNumberListType" />

  <xs:complexType name="PhoneNumberType">
    <xs:annotation>
      <xs:documentation>This element represents a phone number and occurs within objects such as StudentPersonal, StaffPersonal, etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Number" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Phone number.  Free-form, but typical U.S. formats include:</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Extension" minOccurs="0" nillable="true" type="xs:normalizedString">
        <xs:annotation>
          <xs:documentation>Phone number extension.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ListedStatus" minOccurs="0" nillable="true">
        <xs:annotation>
          <xs:documentation>Indicates whether or not the phone number is available to the public.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="Listed" />
            <xs:enumeration value="Unlisted" />
            <xs:enumeration value="Unknown" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required" type="sif:NCES0280TelephoneNumberTypeType">
      <xs:annotation>
        <xs:documentation>Code that specifies what type of phone number this is.  Note: A subset of valid values may be specified in data objects.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="PhoneNumber" type="sif:PhoneNumberType" />

  <xs:complexType name="ProgramType">
    <xs:annotation>
      <xs:documentation>Program value.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:attribute name="Type" use="required">
          <xs:annotation>
            <xs:documentation>The type of the program. Type identifies the list of values.</xs:documentation>
          </xs:annotation>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Foodservice" />
              <xs:enumeration value="CFDA" />
              <xs:enumeration value="NCES">
                <xs:annotation>
                  <xs:documentation>Code from the NCES Handbook</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="StateDOE">
                <xs:annotation>
                  <xs:documentation>Code defined by the State Department of Education</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="Local">
                <xs:annotation>
                  <xs:documentation>Locally-defined code</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
              <xs:enumeration value="Text">
                <xs:annotation>
                  <xs:documentation>Textual description</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="Program" type="sif:ProgramType" />

  <xs:simpleType name="PublishInDirectoryType">
    <xs:annotation>
      <xs:documentation>Indicates whether or not information should be published in a directory.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>Indicates whether or not information should be published in a directory.</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="Yes" />
      <xs:enumeration value="No" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="PublishInDirectory" type="sif:PublishInDirectoryType" />

  <xs:complexType name="RelationshipType">
    <xs:annotation>
      <xs:documentation>Code that defines the relationship of one person to another.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Code" type="sif:NCES0609RelationshipToStudentType">
        <xs:annotation>
          <xs:documentation>Code representing the relationship.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="Relationship" type="sif:RelationshipType" />

  <xs:simpleType name="SchoolNameType">
    <xs:annotation>
      <xs:documentation>The name of the school.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>The name of the school.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SchoolName" type="sif:SchoolNameType" />

  <xs:simpleType name="SchoolYearType">
    <xs:annotation>
      <xs:documentation>School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:gYear">
      <xs:annotation>
        <xs:documentation>School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year).</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SchoolYear" type="sif:SchoolYearType" />

  <xs:complexType name="SIF_ExtendedElementsType">
    <xs:annotation>
      <xs:documentation>Allows an agent to include data not yet defined within a SIF data object as name/value pairs.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="SIF_ExtendedElement" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:annotation>
            <xs:documentation>A name/value pair, the name being contained in the Name attribute, the value being the element content.</xs:documentation>
          </xs:annotation>
          <xs:complexContent>
            <xs:extension base="sif:ExtendedContentType">
              <xs:attribute name="Name" use="required" type="xs:normalizedString">
                <xs:annotation>
                  <xs:documentation>The name of the extended element. As it is possible that names for extended elements may collide from agent to agent, it is recommended that the names of extended elements be configurable in an agent, or that agents use URIs for the names of extended elements.</xs:documentation>
                </xs:annotation>
              </xs:attribute>
              <!--<xs:attribute ref="xsi:type" use="optional" />-->
              <xs:attribute name="SIF_Action" use="optional">
                <xs:annotation>
                  <xs:documentation>
	In a Change event, this flag can be used to indicate an element has been deleted from the parent list container.  At a minimum the key for the list must also be present.
</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="Delete" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:complexContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SIF_ExtendedElements" type="sif:SIF_ExtendedElementsType" />

  <xs:complexType name="SCEDCodeType">
    <xs:annotation>
      <xs:documentation>Course code from the School Codes for the Exchange of Data that describe the content of the course.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="CourseDescription" type="sif:SCEDCourseTitlesType">
        <xs:annotation>
          <xs:documentation>Five-digit number. Subject areas are represented by the first two digits, the last three digits specify a particular course within the subject area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CourseLevel">
        <xs:annotation>
          <xs:documentation>Conveys the level of the course.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="B">
              <xs:annotation>
                <xs:documentation>Basic or remedial</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="G">
              <xs:annotation>
                <xs:documentation>General or regular</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E">
              <xs:annotation>
                <xs:documentation>Enriched or advanced</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="H">
              <xs:annotation>
                <xs:documentation>Honors</xs:documentation>
              </xs:annotation>
            </xs:enumeration>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="AvailableCredit">
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:annotation>
              <xs:documentation>Identifies the amount of credit available to a student who successfully meets the objectives of the course, measured in Carnegie units (9.99 format).</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="0" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:fractionDigits value="2" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SequenceNumber">
        <xs:simpleType>
          <xs:restriction base="xs:unsignedInt">
            <xs:annotation>
              <xs:documentation>One-digit number describing where a specific course lies when it is part of a consecutive sequence of courses described by the same general course description.</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="9" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="SequenceLimit">
        <xs:simpleType>
          <xs:restriction base="xs:unsignedInt">
            <xs:annotation>
              <xs:documentation>One-digit number representing the total number of courses in the consecutive sequence described by the same general course description.</xs:documentation>
            </xs:annotation>
            <xs:minInclusive value="1" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
            <xs:maxInclusive value="9" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SCEDCode" type="sif:SCEDCodeType" />

  <xs:simpleType name="StateProvinceIdType">
    <xs:annotation>
      <xs:documentation>The identifier for this entity as assigned by the state or province.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:normalizedString">
      <xs:annotation>
        <xs:documentation>The identifier for this entity as assigned by the state or province.</xs:documentation>
      </xs:annotation>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="StateProvinceId" type="sif:StateProvinceIdType" />

  <xs:complexType name="SubjectAreaType">
    <xs:annotation>
      <xs:documentation>
	This is a common element used to designate the subject area of a course or other learning materials, or a department. It is used in
	SchoolCourseInfo and learning-related objects.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Code">
        <xs:annotation>
          <xs:documentation>The subject area code (i.e., the first two digits of the course classification code).</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:union>
            <xs:annotation>
              <xs:documentation>The subject area code (i.e., the first two digits of the course classification code).</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SCEDSecondaryCoursesType" />
            </xs:simpleType>
            <xs:annotation>
              <xs:documentation>The subject area code (i.e., the first two digits of the course classification code).</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
              <xs:restriction base="sif:SCEDNonSecondaryCoursesType" />
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OtherCodeList" minOccurs="0" nillable="true" type="sif:OtherCodeListType" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="SubjectArea" type="sif:SubjectAreaType" />

  <xs:complexType name="OtherCodeListType">
    <xs:annotation>
      <xs:documentation>
	List of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element.  If Code changes
	and OtherCodes are supported, both Code and all associated OtherCode elements must be present.
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="OtherCode" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>
	A state/province code, local code, other code or a text string that crosswalks to or serves as a translation of an associated Code element.
</xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:token">
              <xs:attribute name="Codeset" use="required">
                <xs:annotation>
                  <xs:documentation>
	Describes the OtherCode element content as either a state/province code, a local code, other code, or text string.
</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                  <xs:restriction base="xs:token">
                    <xs:enumeration value="StateProvince" />
                    <xs:enumeration value="Local" />
                    <xs:enumeration value="Other" />
                    <xs:enumeration value="Text" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="OtherCodeList" type="sif:OtherCodeListType" />

  <xs:complexType name="MealStatusType">
    <xs:annotation>
      <xs:documentation>This gives information about a student's meal status.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date on which meal status became effective (inclusive).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>
	Date on which meal status was last in effect, if in the past.
	This element can't exist without a StartDate.
</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SchoolYear" minOccurs="0" nillable="true" type="sif:SchoolYearType">
        <xs:annotation>
          <xs:documentation>
	School year for which the information is applicable, expressed as the four-digit year in which the school year ends
	(e.g., 2004 for the 2003-04 school year).
</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:annotation>
        <xs:documentation>Meal status type.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Free" />
          <xs:enumeration value="Reduced" />
          <xs:enumeration value="None" />
          <xs:enumeration value="NA" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="MealStatus" type="sif:MealStatusType" />

  <xs:complexType name="EarnedStatusType">
    <xs:annotation>
      <xs:documentation>This gives information about a staff member's meal status.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="StartDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date on which earned status became effective (inclusive).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="EndDate" minOccurs="0" nillable="true" type="xs:date">
        <xs:annotation>
          <xs:documentation>Date on which earned status was last in effect. This attribute is conditional upon the StartDate element. It exists only if the StartDate element exists.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="Type" use="required">
      <xs:annotation>
        <xs:documentation>Earned status type.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Yes" />
          <xs:enumeration value="No" />
          <xs:enumeration value="NA" />
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

  <xs:element name="EarnedStatus" type="sif:EarnedStatusType" />

  <xs:simpleType name="MealTypeType">
    <xs:annotation>
      <xs:documentation>This gives information about a meal type.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:token">
      <xs:annotation>
        <xs:documentation>This gives information about a meal type.</xs:documentation>
      </xs:annotation>
      <xs:enumeration value="FirstMeal" />
      <xs:enumeration value="SecondMeal" />
      <xs:enumeration value="StaffMeal" />
      <xs:enumeration value="AdultMeal" />
      <xs:enumeration value="AlaCarte" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="MealType" type="sif:MealTypeType" />

</xs:schema>